/**
 * 
 */
package testes;

import java.io.FileNotFoundException;
import java.io.IOException;

import junit.framework.TestCase;

import compilador.analisadorLexico.AnalisadorLexico;
import compilador.analisadorLexico.AnalisadorLexicoImpl;
import compilador.analisadorSemantico.AnalisadorSemantico;
import compilador.analisadorSemantico.AnalisadorSemanticoImpl;
import compilador.analisadorSintatico.AnalisadorSintatico;
import compilador.analisadorSintatico.AnalisadorSintaticoImpl;
import compilador.geradorCodigo.GeradorCodigo;
import compilador.geradorCodigo.GeradorCodigoImpl;
import compilador.tratamentoDeErro.GerenciadorMensagens;
import compilador.tratamentoDeErro.GerenciadorMensagensImpl;

/**
 * @author Rodrigo Barbosa Lira
 * @author Alfeu Buriti
 * @author Andrea Alves
 * @author Guarany Viana
 * @author Samuel de Barros
 * 
 * 
 */
public class TesteErros extends TestCase {

	private static final String quebraLinha = System.getProperty("line.separator");

	private AnalisadorLexico lexico;

	private AnalisadorSintatico sintatico;
	
	private AnalisadorSemantico semantico;

	private GerenciadorMensagens mensageiro;

	private GeradorCodigo geradorCodigo;

	public TesteErros() {
	}

	public void testePrograma01() {
		try {
			mensageiro = new GerenciadorMensagensImpl();
			semantico = new AnalisadorSemanticoImpl(mensageiro);
			geradorCodigo = new GeradorCodigoImpl();
			lexico = new AnalisadorLexicoImpl("tests/erro1.vb", mensageiro);
			mensageiro.setAnalisadorLexico(lexico);
			sintatico = new AnalisadorSintaticoImpl(lexico, semantico, geradorCodigo, mensageiro);

			sintatico.analisar();
		} catch (FileNotFoundException e) {
			fail();
		} catch (IOException e) {
			fail();
		}
		assertTrue(mensageiro.hasErros());
	}
}